package cn.tedu.innerclass;
/*本类用于测试成员内部类被private修饰*/
public class TestInner2 {
    public static void main(String[] args) {
        //4.使用内部类的eat()
        //Outer2.Inner2 oi2 = new Outer2().new Inner2();
        //oi2.eat();
        /*如果内部类被private修饰,无法直接在外界创建内部类对象
         * 我们可以创建外部类的对象,间接访问内部类的资源*/
        new Outer2().getInner2Eat();//外部类的外部公共方法,使用内部类的资源,创建对象调用内部类方法,间接访问,
    }
}

//1.创建外部类
class Outer2{
    //6.对外提供一个公共的方法
    public void getInner2Eat(){
        //创建内部类对象,调用内部类的功能//
        Inner2 in = new Inner2(); //1)测试或公共类的主或入口方法里面,无法直接创建外部类的成员内部类;2)内部类对象,可以在外部类成员方法里面创建
        in.eat(); //inner在通一个类里面,相当于普通资源调用普通资源
    }



    //2.创建内部类
    //5.成员内部类,被private修饰,私有化的资源无法被外界访问
    private class Inner2{ //defaulted/friendly or 没有,什么都没写
        //3.创建内部类的普通方法
        public void eat(){
            System.out.println("内部类...eat()");
        }
    }
}